import random

# 学生数据（直接使用你提供的名单）
student_data = """
陈艳玲	女	2313040101
邓嘉诚	男	2313040102
杜奇	男	2313040103
范宗凯	男	2313040104
方伊萍	女	2313040105
何宝林	男	2313040106
何泽方	女	2313040107
洪梓云	女	2313040108
黄俊杰	男	2313040109
黄骑龙	男	2313040110
姜晓琴	女	2313040111
雷聪	男	2313040112
黎梓瑜	男	2313040115
李浩东	男	2313040113
李军	男	2313040114
梁光涛	男	2313040116
刘崇彬	男	2313040117
刘伟	男	2313040118
聂宇文	男	2313040119
谭华盛	男	2313040120
万星扬	男	2313040121
王楠	女	2313040122
王旭	男	2313040123
温巧玲	女	2313040124
温鑫	男	2313040125
吴敦国	男	2313040126
吴佳琦	女	2313040127
谢国宝	男	2313040128
谢伟达	男	2313040129
鄢智蔚	女	2313040130
杨婧	女	2313040131
易圣航	男	2313040132
易梓晨	女	2313040133
赵思逸	女	2313040134
赵毅豪	男	2313040135
钟纹萍	女	2313040136
周佳佳	女	2313040137
"""

class RollCallSystem:
    def __init__(self):
        self.all_students = []
        self.remaining_students = []
        self._parse_data()
        
    def _parse_data(self):
        """解析学生数据"""
        lines = student_data.strip().split('\n')
        for line in lines:
            try:
                name, gender, sid = line.strip().split('\t')
                self.all_students.append({
                    'name': name,
                    'gender': gender,
                    'id': sid
                })
            except ValueError:
                continue  # 跳过格式错误的行
        
    def reset(self):
        """重置点名状态"""
        self.remaining_students = self.all_students.copy()
        random.shuffle(self.remaining_students)
        print("点名已重置，剩余人数：", len(self.remaining_students))
        
    def call_one(self):
        """随机点一名学生"""
        if not self.remaining_students:
            print("所有学生都已点名完毕！")
            return None
            
        student = self.remaining_students.pop()
        return student
        
    def get_remaining_count(self):
        """获取剩余未点名人数"""
        return len(self.remaining_students)

# 使用示例
if __name__ == "__main__":
    system = RollCallSystem()
    system.reset()
    
    while True:
        print("\n操作选项:")
        print("1 - 随机点名")
        print("2 - 查看剩余人数")
        print("3 - 重置系统")
        print("0 - 退出")
        
        choice = input("请选择操作：")
        
        if choice == '1':
            student = system.call_one()
            if student:
                print("\n被点名的学生是：")
                print(f"姓名：{student['name']}")
                print(f"性别：{student['gender']}")
                print(f"学号：{student['id']}")
        elif choice == '2':
            print(f"剩余未点名人数：{system.get_remaining_count()}")
        elif choice == '3':
            system.reset()
        elif choice == '0':
            print("系统已退出")
            break
        else:
            print("无效的输入，请重新选择")